#ifndef __STATICDATA_DATAINFOMANAGERCONTAINER_H__
#define __STATICDATA_DATAINFOMANAGERCONTAINER_H__

#include "IDataInfoManager.h"

#include <map>
#include <string>
#include "../Base/Singleton.h"

class Logger;
class CDataInfoManagerContainer
{
public:
	DECLALRE_SINGLETON(CDataInfoManagerContainer);
	CDataInfoManagerContainer();
	~CDataInfoManagerContainer();
	void ResetAllDataInfoManager();
	void LoadFromFile(const std::string & strFileName);
	void SaveToFile(std::string & strFileName);
	IDataInfoManager * GetDataInfoManager(std::string & strManagerName) const;
	//std::string GetDataInfoManagerName(IDataInfoManager * pDIM) const;
	//const std::map < IDataInfoManager *, std::string > & GetManagers();
private:
	void _Initialize();
	void _InitAllDataInfoManager();

	std::map < std::string, IDataInfoManager * > m_ManagerNameMap;
	std::map < IDataInfoManager *, std::string > m_ManagerMap;
	Logger& m_rLogger;
};

#endif //__STATICDATA_DATAINFOMANAGERCONTAINER_H__